package com.rustic.server.vo;

import cn.hutool.core.bean.BeanUtil;
import com.rustic.server.po.Attractions;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 表[attractions]对应VO类
 *
 * @author auto
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class AttractionsWebVO extends UserInteractionStatusVO {

    /**
     * 自增ID
     */
    @ApiModelProperty(value = "自增ID", dataType = "Integer")
    private Integer id;

    /**
     * 关联乡村id
     */
    @ApiModelProperty(value = "关联乡村id", dataType = "int")
    private int rusticId;

    /**
     * 关联乡村
     */
    @ApiModelProperty(value = "关联乡村", dataType = "String")
    private String rusticName;

    /**
     * 景点名称
     */
    @ApiModelProperty(value = "景点名称", dataType = "String")
    private String name;

    /**
     * 地区
     */
    @ApiModelProperty(value = "地区", dataType = "String")
    private String address;

    /**
     * 详细地址
     */
    @ApiModelProperty(value = "详细地址", dataType = "String")
    private String detailedAddress;

    /**
     * 介绍
     */
    @ApiModelProperty(value = "介绍", dataType = "String")
    private String introduce;

    /**
     * 封面
     */
    @ApiModelProperty(value = "封面", dataType = "String")
    private String cover;

    /**
     * 图片(轮播图)
     */
    @ApiModelProperty(value = "图片(轮播图)", dataType = "String")
    private String images;

    /**
     * 景点等级id
     */
    @ApiModelProperty(value = "景点等级id", dataType = "int")
    private int grade;

    /**
     * 景点等级
     */
    @ApiModelProperty(value = "景点等级", dataType = "String")
    private String gradeName;

    /**
     * 景点类型id
     */
    @ApiModelProperty(value = "景点类型id", dataType = "int")
    private int type;

    /**
     * 景点类型
     */
    @ApiModelProperty(value = "景点类型", dataType = "String")
    private String typeName;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序", dataType = "int")
    private int sort;

    /**
     * 景点特色
     */
    @ApiModelProperty(value = "景点特色", dataType = "String")
    private String feature;

    /**
     * 价格
     */
    @ApiModelProperty(value = "价格", dataType = "BigDecimal")
    private BigDecimal price;

    /**
     * 状态(1发布 2下架)
     */
    @ApiModelProperty(value = "状态(1发布 2下架)", dataType = "int")
    private int status;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人id", dataType = "int")
    private String creator;

    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人", dataType = "int")
    private String modifier;

    /**
     * 发布时间
     */
    @ApiModelProperty(value = "发布时间", dataType = "Date")
    private Date publishTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", dataType = "Date")
    private Date updateTime;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", dataType = "Date")
    private Date createTime;

    public AttractionsWebVO(Attractions attractions) {
        if (attractions != null) {
            BeanUtil.copyProperties(attractions, this);
        }
    }
}
